package com.le.tester.imooc.masterJUC.collections.copyonwrite;

import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * 描述：对比两个迭代器,读多写少的情景
 */
public class CopyOnWriteArrayListDemo2 {
    public static void main(String[] args) {
        //在源码中使用的是reentrantLock，可以和源码使用的一样的写法，就是在try之前先lock
        CopyOnWriteArrayList<Integer> list = new CopyOnWriteArrayList<>(new Integer[]{1, 2, 3});

        System.out.println(list);

        Iterator<Integer> iter1 = list.iterator();
        list.add(4);
        System.out.println(list);
        Iterator<Integer> iter2 = list.iterator();

        //遍历剩余的
        iter1.forEachRemaining(System.out::println);
        iter2.forEachRemaining(System.out::println);
    }
}
